Software development typically involves writing, debugging, and testing computer code. Traditional methods of testing software include supplying the computer code with a set of synthetic data which produce a known result if the software is functioning correctly. When the software produces unexpected or undesired results, the computer code may be changed or modified accordingly. Alternatively, new features may be added to the software which also require testing before the software may be released for use. This is an iterative process that eventually results in computer code that functions as designed.
Some software applications, however, require real-time data that must be generated each time the software is to be tested. In these instances, synthetic data may not adequately reflect the actual conditions in which the software is expected to perform. For example, in applications such as the tracking of high speed projectiles, synthetic data may not be able to replicate environmental conditions or the actual trajectory of the projectile while in flight. Achieving a compliant software package may therefore require multiple range/field tests in which a projectile has to be fired or launched under conditions reflective of the expected environment and may increase development time or development costs.